In the art of digital image display and processing, it is conventional to provide a parallel color bus of, for example, 16 bits. At a given time and for a given "pixel" or pel of an image, the bus may carry simultaneously digitized values of red, green and blue (RGB) components of the pel, each having 32 levels, ranging in value from 0-31 or 0-(2.sup.5 -1). This range of 2.sup.5 red, 2.sup.6 green, and 2.sup.5 blue values (=2.sup.5+6+5 =2.sup.16) gives rise to the need for the 16 bit bus.
High quality continuous full color resolution monitors and images are thus possible when each R, G, and B component may assume any value in the 0-(2.sup.5 -1) range. Display monitors are thus commonly encountered having a potential color palette, for example, of 256,000 possible colors. This is of course due to the numerous combinations of possible RGB values, given the wide range of values for each color component.
With the desire for increased resolution images, however, it is also not uncommon to encounter displays having in excess of 300,000 pels per image as, for example, in a 640.times.480 display (i.e. 307,200 pels). It may therefore be readily understood that tremendous memory and speed problems are presented when attempting to provide digitized image displays having both high color as well as high pel resolutions. Using the above examples, to display only one frame of such an image would involve storage and retrieval of 307,200 16 bit pels. In animation or full motion video requiring rapid display of numerous such images, these problems become even more serious.
For the foregoing reasons, the art has continuously sought techniques for producing higher resolution images while at the same time reducing the tremendous demands on the imaging system.
One approach has been to reduce the number of available colors in an input palette selected from the continuous palette to, say, 16, whereby the color of each pel might be specified simply by a 4 bit number. In this manner, a fixed input palette of 16 colors might be preselected each having stored, preselected RGB component values, thereby reducing the number of bits required to specify a particular pel. Although each selected color might be any desired color from the much wider palette of continuous color (in that its RGB components could be selected from the entire permissible range of the components), the limitation to a relatively small number of such preselected colors nevertheless created yet other problems. Often a very serious degradation in the image quality resulted, such as in the phenomenon of contouring wherein, for example, flesh tones could often appear splotchy in appearance. Thus, numerous techniques evolved in the art for diffusing error in an attempt to more closely approximate a continuous color image with a limited palette of input colors. One such technique is described in "A Procedure for Optimum Choice of a Small Number of Colors from a Large Color Palette for Color Imaging", published in the Proceedings of the Electronic Imaging 86 Exposition and Conference, Boston, Mass., Nov. 3-6, 1986, pp. 75-79, Institute for Graphic Communications, Boston, Mass.
Thus, for the foregoing and other reasons, a system and method were highly desired for simulating simply and rapidly from a limited color palette a visual image appearing to be formed from a more extensive color palette which was thereby perceived by the eye as being more pleasing and accurate.